Skip to content

feat: opencode remote control + opencode serve dependencies#19545

Open
R44VC0RP wants to merge 35 commits intodevfrom
opencode-remote-voice
Open

feat: opencode remote control + opencode serve dependencies#19545
R44VC0RP wants to merge 35 commits intodevfrom
opencode-remote-voice

Conversation

@R44VC0RP
Copy link
Copy Markdown
Collaborator

@R44VC0RP R44VC0RP commented Mar 28, 2026

image

Run

opencode serve --hostname 0.0.0.0 --relay-secret "<SOME RANDOM SECRET>" --advertise-host "*.**.ts.net"
(if you use tailscale add the --advertise-host part)

image

it will spit out a QR code like this, all you need to do is open the control app and scan it then you should get prompted with which servers you wanna add

porter-deployment-app bot and others added 15 commits March 28, 2026 13:59
Co-authored-by: porter-deployment-app[bot] <87230664+porter-deployment-app[bot]@users.noreply.github.com>
Add in-button model download progress plus a model reset control in mobile-voice, and switch APN relay defaults to apn.dev.opencode.ai in serve and docs.
Retry sends on BadEnvironmentKeyInToken with the opposite APNs environment, persist the corrected env, and add request/send logs for register/unregister/event delivery debugging.
- Updated package dependencies in bun.lock and package.json for mobile-voice and opencode.
- Added expo-camera and improved camera permission handling in mobile-voice.
- Introduced QR code generation for relay setup in opencode serve command.
- Enhanced server management and logging in DictationScreen component.
Replace Expo icon/adaptive icon assets with the provided image and simplify the server dropdown so adding a server is done by scanning the setup QR code only.
Persist scanned servers across reloads, smooth server/session UI states, and make recording feel immediate. Add session-aware push notification title/body metadata from the OpenCode server.
@R44VC0RP R44VC0RP added the beta label Mar 29, 2026
Replace the hydration state effect with useSyncExternalStore so the web color-scheme hook keeps its static-render fallback without triggering the set-state-in-effect lint warning.
Mark intentional async work in the mobile screen with the void operator so lint can distinguish real promise bugs from deliberate fire-and-forget behavior.
Rewrite a focused cluster of nested ternaries in the mobile screen into straight-line derived logic so the render state is easier to read without changing behavior.
Extract server/session and monitoring workflows into focused hooks so DictationScreen no longer owns every network and notification path. Add a dedicated mobile typecheck config so TypeScript checks pass without breaking Expo export resolution.
@opencode-agent
Copy link
Copy Markdown
Contributor

⚠️ Blocking Beta Release

This PR cannot be merged into the beta branch due to: Merge conflicts with dev branch

Please resolve this issue to include this PR in the next beta release.

Add mobile permission approval flow, simplify dictation settings into toggles, and remove oversized Whisper models while syncing the iOS project with the current runtime configuration.
Improve pairing reliability and UX by letting users choose among scanned hosts with health checks and cleaner row styling while shrinking QR payloads. Handle iOS call-time audio session conflicts more gracefully with user-friendly messaging and lower-noise logs.
@R44VC0RP R44VC0RP changed the title feat: mobile voice integration + APN relay feat: opencode remote control + opencode serve dependencies Mar 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant